package com.bestcem.xm.txtanls.dao.impl;//package com.bestcem.xm.txtanls.dao.impl;
//
//import com.bestcem.xm.txtanls.dao.HiddenKeywordDao;
//import com.bestcem.xm.txtanls.entity.pojo.HiddenKeywordDO;
//import com.bestcem.xm.common.core.uitls.DateUtil;
//import com.mongodb.client.result.DeleteResult;
//import com.mongodb.client.result.UpdateResult;
//import org.bson.types.ObjectId;
//import org.springframework.data.mongodb.core.MongoTemplate;
//import org.springframework.data.mongodb.core.query.Criteria;
//import org.springframework.data.mongodb.core.query.Query;
//import org.springframework.data.mongodb.core.query.Update;
//
//import javax.annotation.Resource;
//import java.util.List;
//
//import static com.bestcem.xm.txtanls.util.CollectionName.TXTANLS_HIDDENKEYWORDS;
//import static com.bestcem.xm.txtanls.util.ColumnConstant.Base.RECORD_FLAG;
//import static com.bestcem.xm.txtanls.util.ColumnConstant.Base.UPDATED_DT;
//import static com.bestcem.xm.txtanls.util.ColumnConstant.HiddenKeyword.KEYWORD_LIST;
//import static com.bestcem.xm.txtanls.util.ColumnConstant.HiddenKeyword.PROJECT_ID;
//import static com.bestcem.xm.txtanls.util.Constants.ONE;
//
///**
// * @author liheng
// * @version v1.0
// * @date 2021/6/28 14:16
// */
////@Repository
//public class HiddenKeywordDaoImpl implements HiddenKeywordDao {
//
//    @Resource
//    private MongoTemplate mongoTemplate;
//
//    /**
//     * 查询屏蔽关键词
//     *
//     * @param projectId
//     * @return
//     * @author liheng
//     * @date 2021/6/28 15:47
//     */
//    @Override
//    public HiddenKeywordDO findHiddenKeywords(String projectId) {
//        ObjectId objectId = new ObjectId(projectId);
//        Query query = new Query(Criteria.where(PROJECT_ID).is(objectId));
//        query.fields().include(KEYWORD_LIST);
//        return mongoTemplate.findOne(query, HiddenKeywordDO.class);
//    }
//
//    /**
//     * <p>话题添加关键词</p>
//     *
//     * @param projectId
//     * @param keyword
//     * @return 更新结果
//     * @author liheng
//     */
//    @Override
//    public UpdateResult addKeywords(String projectId, String keyword) {
//        ObjectId objectId = new ObjectId(projectId);
//        Query query = new Query(Criteria.where(PROJECT_ID).is(objectId));
//        query.addCriteria(Criteria.where(RECORD_FLAG).is(ONE));
//        Update update = new Update();
//        update.set(UPDATED_DT, DateUtil.getMongoDate());
//        return mongoTemplate.upsert(query, update.addToSet(KEYWORD_LIST, keyword), HiddenKeywordDO.class);
//    }
//
//    /**
//     * 删除屏蔽关键词
//     *
//     * @param projectId
//     * @param keyword
//     * @return
//     * @date 2021/6/4 16:22
//     * @author liheng
//     */
//    @Override
//    public UpdateResult deleteKeywords(String projectId, String keyword) {
//        ObjectId objectId = new ObjectId(projectId);
//        Query query = new Query(Criteria.where(PROJECT_ID).is(objectId));
//        Update update = new Update();
//        return mongoTemplate.upsert(query, update.pull(KEYWORD_LIST, keyword), HiddenKeywordDO.class);
//    }
//
//    /**
//     * 修改关键词
//     *
//     * @param projectId
//     * @param keywordList
//     * @return
//     * @author liheng
//     */
//    @Override
//    public UpdateResult updateKeywords(String projectId, List<String> keywordList) {
//        Query query = Query.query(Criteria.where(PROJECT_ID).is(new ObjectId(projectId)));
//        Update update = Update.update(KEYWORD_LIST, keywordList);
//        return mongoTemplate.upsert(query, update, HiddenKeywordDO.class);
//    }
//
//    /**
//     * 删除分析项目下的全部隐藏关键词信息
//     *
//     * @param projectId 项目id
//     * @return The result of a delete operation
//     * @author XiaoYunSong <ys.xiao@idiaoyan.cn>
//     * @date 2021/5/21 14:29
//     */
//    @Override
//    public DeleteResult deleteProjectAllHidden(String projectId) {
//        Query query = new Query();
//        query.addCriteria(Criteria.where(PROJECT_ID).is(new ObjectId(projectId)));
//        return mongoTemplate.remove(query, TXTANLS_HIDDENKEYWORDS);
//    }
//}
